package com.w7vm.menuweb.facade;

import java.util.Date;
import java.util.List;

import javax.ejb.Remote;

import com.w7vm.menuweb.entity.BeneficioMsgSy;
import com.w7vm.menuweb.entity.ContratoCreditoPagamentoWeb;
import com.w7vm.menuweb.entity.ContratoPagamentoWeb;
import com.w7vm.menuweb.entity.ContratoWeb;
import com.w7vm.menuweb.entity.DescontoPagamentoSy;
import com.w7vm.menuweb.entity.FormaPagamentoSy;
import com.w7vm.menuweb.entity.RestauranteSedeWeb;
import com.w7vm.menuweb.vo.FormaPagamentoVO;

@Remote
public interface ContratoFacade {
	
	public abstract List<ContratoWeb> preparaListaContratoPorNumeroContrato(int numero);
	public abstract List<ContratoWeb> preparaListaContratoPorIDRestaurante(int id);

	public abstract List<DescontoPagamentoSy> preparaListaDesconto(String tipoDesconto);

	public abstract List<FormaPagamentoSy> preparaListaFormasPagamento();

	public abstract ContratoWeb alterarDadosContrato(ContratoWeb contratoEntity);
	public abstract int defineRegraDesconto(List<DescontoPagamentoSy> descontoL, int qtdeAcessoFilial);

	public abstract int persisteContratoNovo(ContratoWeb contratoEntity, int idContratoOld);
	
	public abstract int excluiPagamentosContrato(List<Integer> pagamentoContratoL);
	public abstract int excluiRestaurantesContrato(List<Integer> restaurantesContratoL);
	
	public abstract int alteraPlanoContrato(ContratoWeb contratoEntity);
	
	
	public abstract int alteraRenovacaoContrato(ContratoWeb contratoEntity);

	
	public abstract int calculaQuantidadeDiasContratoVencimento(Date dtTerminoContrato);
	public abstract String defineRegraRenovacao(int resultCalculo);

	public abstract List<BeneficioMsgSy> preparaListaBeneficioMsg();
	
///	public abstract int efetuaPagamentoAtraso(int idContratoPagamento, int idFormaPagamento, String codeTransacao, String titularPagamento, Date dataPagamento, int status);
	
	public abstract int efetuaPagamentoAtraso(ContratoPagamentoWeb contratoPag);
	// Method CRUD
	
	public abstract void excluiContratoRestauranteFilial(int id);
	public abstract int ativaDesativaRestauranteContrato(int id, int status, String tipo);

	//public abstract ContratoCreditoPagamentoWeb buscaCreditoPagamentoPorIDContrato(int id);
	


	
		
}
